home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byte0787.arc / NEWGEN.ARC / SIEVE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1987-01-27  |  1.1 KB  |  34 lines

  1. /*
  2. Eratosthenes Sieve Prime Number Program in from BYTE January 1983
  3. */
  4.  
  5. #define TRUE     1
  6. #define FALSE    0
  7. #define size  8190
  8.  
  9.      char flags [size + 1];
  10. main()
  11.     {
  12.     int i, prime, k, count, iter;
  13.  
  14.     printf ("10 iterations\n");
  15.     for (iter = 1; iter <= 10; iter++)            /* do program 10 times */
  16.           {
  17.           count = 0;                              /* prime counter */
  18.           for (i = 0; i <= size; i++)             /* set all flags true */
  19.                 flags [i] = TRUE;
  20.           for (i = 0; i <= size; i++)
  21.                {
  22.                     if (flags [i])                /* found a prime */
  23.                     {
  24.                     prime = i + i + 3;            /* twice index + 3 */
  25. /*                  printf ("\n%d", prime);  */
  26.                     for (k = i + prime; k <= size; k+= prime)
  27.                                  flags [k] = FALSE;  /* kill all multiple */
  28.                     count++;                         /* primes found */
  29.                     }
  30.                 }
  31.       }
  32.       printf ("%d primes.\n", count);     /* primes found on 10th pass */
  33.  }